/**
 * Created by apple on 2017/6/12.
 */


var express = require('express');
var router = express.Router();

var LogRouter = module.exports;
var AdminToken = require('../db/user_tokens.js');
var Log = require('../dao/log.js');


/**
 * 显示管理员登录信息
 * @param req token，type
 * @param res
 */
LogRouter.logInfo = function (req, res) {
    var par = paramAll(req);
    if(!par.token){
        res.json(new ERR('token不为空',400));
        return;
    }
    if(!par.type){
        res.json(new ERR('type不为空',400));
        return;
    }
    if(!par.isUserOrAdm){
        res.json(new ERR('isUserOrAdm不为空',400));
        return;
    }
    if(par.endTime && !par.startTime){
        res.json(new ERR('起始时间不为空',400));
        return;
    }
    AdminToken.checkAdminLogin(par.token,par.app_sid, function (err,errCode, adminInfo) {
        if(err){
            res.json(new ERR(err, errCode));
            return;
        }

        Log.logInfo(par,function (e, result) {
            if (e) {
                res.json(new ERR(e, 400));
                return;
            }
            var list = {
                logInfo: result
            }
            res.json(new PKG(list));
        });

    });
}
router.post('/logInfo', LogRouter.logInfo);


/**
 * 查询vip日志 系统管理员、产品管理员或 用户自己(目前只有跑单用)
 * @param req token，type
 * @param res
 */

LogRouter.vipLogInfo = function (req, res) {
    var par = paramAll(req);
    if(!par.token){
        res.json(new ERR('token不为空',400));
        return;
    }
    if(par.endTime && !par.startTime){
        res.json(new ERR('起始时间不为空',400));
        return;
    }
    AdminToken.checkLogin(par.token,function (err,userInfo) {
        if(err){
            res.json(new ERR(err));
            return;
        }

        if(!userInfo){
            res.json(new ERR('请先登录',403));
            return;
        }

        if(userInfo.isAdmin){

            if(par.app_sid) {
                //检查是不是系统管理员或产品管理员
                if (userInfo.role.indexOf('admin') < 0 && userInfo.role.indexOf('adm_' + par.app_sid) < 0) {
                    res.json(new ERR('无权限', 400));
                    return;
                }
            }else {
                //检查是不是系统管理员
                if (userInfo.role.indexOf('admin') < 0) {
                    res.json(new ERR('无权限', 400));
                    return;
                }
            }

        }else {//如果不是管理员，只查询自己,且默认查询权限类型，只有带alter才查 权限积分增减的情况
            par.account = userInfo.account;
            if(!par.vip_type) {
                par.vip_type = 0;
            }
        }
        Log.vipLogInfo(par,function (e, result) {
            if (e) {
                res.json(new ERR(e, 400));
                return;
            }
            var list = {
                logInfo: result
            }
            res.json(new PKG(list));
        });

    });
}
router.post('/vipLogInfo', LogRouter.vipLogInfo);

/**
 * 查询vip日志 系统管理员、产品管理员(目前定义是产品功能管理员不可以查看用户vip变更情况)或 用户自己(目前只有跑单用)
 * @param req token，app_sid，vip_type
 * @param res
 */

LogRouter.vipLogInfos = function (req, res) {
    var par = paramAll(req);
    if(!par.token){
        res.json(new ERR('token is null',400));
        return;
    }
    if(!par.vip_sid){
        res.json(new ERR('vip_sid is null',400));
        return;
    }
    // if(par.endTime && !par.startTime){
    //     res.json(new ERR('起始时间不为空',400));
    //     return;
    // }
    AdminToken.checkLogin(par.token,function (err,userInfo) {
        if(err){
            res.json(new ERR(err));
            return;
        }

        if(!userInfo){
            res.json(new ERR('请先登录',403));
            return;
        }

        if(userInfo.isAdmin){

            if(par.app_sid) {
                //检查是不是系统管理员或产品管理员
                if (userInfo.role.indexOf('admin') < 0 && userInfo.role.indexOf('adm_' + par.app_sid) < 0) {
                    res.json(new ERR('无权限', 400));
                    return;
                }
            }else {
                //检查是不是系统管理员
                if (userInfo.role.indexOf('admin') < 0) {
                    res.json(new ERR('无权限', 400));
                    return;
                }
            }
        }else {
            par.account = userInfo.account;
        }
        Log.vipLogInfos(par,function (e, result) {
            if (e) {
                res.json(new ERR(e, 400));
                return;
            }
            var list = {
                logInfo: result
            }
            res.json(new PKG(list));
        });

    });
}
router.post('/vipLogInfos', LogRouter.vipLogInfos);

module.exports = router;